<feed xmlns='http://www.w3.org/2005/Atom'>
<title>{non-gerrit}/qt-labs/scxml.git/src, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/{non-gerrit}/qt-labs/scxml.git/'/>
<entry>
<title>Change parsing of "event" attribute of transitions.</title>
<updated>2012-01-27T15:28:18+00:00</updated>
<author>
<name>Marc Schmitzer</name>
<email>marc.schmitzer@richard-wolf.com</email>
</author>
<published>2012-01-27T15:28:18+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/{non-gerrit}/qt-labs/scxml.git/commit/?id=9be5070e56f170a239dcc075f9dc5b21a1ea8a4d'/>
<id>9be5070e56f170a239dcc075f9dc5b21a1ea8a4d</id>
<content type='text'>
Previously, the event prefixes for a transition where obtained by
using QString::split(' ') on the value of the "event" attribute.
QString::split() also retains empty strings resulting from the split,
which has two consequences:

1) If the event attribute is empty or missing, a QStringList containing
a single empty string is returned. This makes event-less transitions
work, which are executed immediately (if the condition is met).

2) If the event attribute contains multiple prefixes separated by
more than one space character, the returned list contains the prefixes
*and* one or more empty strings. This makes the transition trigger
immediately and on *any* event. Since an extra space is an easy mistake
to make and difficult to spot (speaking from experience), this behaviour
is rather undesirable.

To fix this, this patch changes the parsing of the event attribute
to use QString::split(' ', QString::SkipEmptyParts). This fixes (2)
but breaks (1).

To keep event-less transitions working, QScxmlTransition::eventTest()
is changed to match events of type QEvent::None if the transition
has no event prefixes. Due to the above change, this is the case when
the "event" attribute is ommitted or contains only space characters.

NOTE: Strictly speaking, this removes a feature from qscxml.
In the previous state, it was possible to create a transition (presumably
with a guard condition) that is both executed immediately when its
source state is entered *and* triggered by one or more signals.

With this change, a transition can only be either immediate or triggered
by (an) event(s), not both. The W3C scxml specification seems to
specify this behaviour (see http://www.w3.org/TR/scxml/#SelectingTransitions ).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, the event prefixes for a transition where obtained by
using QString::split(' ') on the value of the "event" attribute.
QString::split() also retains empty strings resulting from the split,
which has two consequences:

1) If the event attribute is empty or missing, a QStringList containing
a single empty string is returned. This makes event-less transitions
work, which are executed immediately (if the condition is met).

2) If the event attribute contains multiple prefixes separated by
more than one space character, the returned list contains the prefixes
*and* one or more empty strings. This makes the transition trigger
immediately and on *any* event. Since an extra space is an easy mistake
to make and difficult to spot (speaking from experience), this behaviour
is rather undesirable.

To fix this, this patch changes the parsing of the event attribute
to use QString::split(' ', QString::SkipEmptyParts). This fixes (2)
but breaks (1).

To keep event-less transitions working, QScxmlTransition::eventTest()
is changed to match events of type QEvent::None if the transition
has no event prefixes. Due to the above change, this is the case when
the "event" attribute is ommitted or contains only space characters.

NOTE: Strictly speaking, this removes a feature from qscxml.
In the previous state, it was possible to create a transition (presumably
with a guard condition) that is both executed immediately when its
source state is entered *and* triggered by one or more signals.

With this change, a transition can only be either immediate or triggered
by (an) event(s), not both. The W3C scxml specification seems to
specify this behaviour (see http://www.w3.org/TR/scxml/#SelectingTransitions ).
</pre>
</div>
</content>
</entry>
<entry>
<title>Clear script in curExecContext after applying it to a transition in QScxmlLoader::loadState().</title>
<updated>2011-11-28T23:43:28+00:00</updated>
<author>
<name>Marc Schmitzer</name>
<email>marc.schmitzer@richard-wolf.com</email>
</author>
<published>2011-11-28T23:43:28+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/{non-gerrit}/qt-labs/scxml.git/commit/?id=eb07b340d03fd5749205490c766020b59d740e98'/>
<id>eb07b340d03fd5749205490c766020b59d740e98</id>
<content type='text'>
Without this change, the script is also applied to the state containing the transition in line 1502 if the state sources an external scxml file (via the "src") attribute. In that case, the next
element processed by the parser is the closing &lt;/scxml&gt; if the transition containing the script is the last in the file.

Maybe this should better be fixed in the block starting at line 1499, but clearing the script *after* applying it somewhere seems safe enough.

Merge-request: 3
Reviewed-by: No'am Rosenthal &lt;noam.rosenthal@nokia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Without this change, the script is also applied to the state containing the transition in line 1502 if the state sources an external scxml file (via the "src") attribute. In that case, the next
element processed by the parser is the closing &lt;/scxml&gt; if the transition containing the script is the last in the file.

Maybe this should better be fixed in the block starting at line 1499, but clearing the script *after* applying it somewhere seems safe enough.

Merge-request: 3
Reviewed-by: No'am Rosenthal &lt;noam.rosenthal@nokia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>removed fringe features</title>
<updated>2009-11-26T23:26:27+00:00</updated>
<author>
<name>No'am Rosenthal</name>
<email>noam.rosenthal@nokia.com</email>
</author>
<published>2009-11-26T23:26:27+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/{non-gerrit}/qt-labs/scxml.git/commit/?id=9a50c13ad99d40115bb023aa1a89a9f0c1a352bb'/>
<id>9a50c13ad99d40115bb023aa1a89a9f0c1a352bb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>updated license headers</title>
<updated>2009-11-26T22:47:09+00:00</updated>
<author>
<name>No'am Rosenthal</name>
<email>noam.rosenthal@nokia.com</email>
</author>
<published>2009-11-26T22:47:09+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/{non-gerrit}/qt-labs/scxml.git/commit/?id=3d88526d4943bc6273b2d47f608e9d418724e112'/>
<id>3d88526d4943bc6273b2d47f608e9d418724e112</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>many fixes and optimizations to SCXML</title>
<updated>2009-11-26T22:37:34+00:00</updated>
<author>
<name>No'am Rosenthal</name>
<email>noam.rosenthal@nokia.com</email>
</author>
<published>2009-11-26T22:37:34+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/{non-gerrit}/qt-labs/scxml.git/commit/?id=7a19605fcc176c03563016836f208c88c1971987'/>
<id>7a19605fcc176c03563016836f208c88c1971987</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>adjusted for postInternalEvent API change</title>
<updated>2009-10-03T18:43:10+00:00</updated>
<author>
<name>No'am Rosenthal</name>
<email>noam.rosenthal@nokia.com</email>
</author>
<published>2009-10-03T18:43:10+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/{non-gerrit}/qt-labs/scxml.git/commit/?id=9566cee0046b08191e7b15065e7bcd89d077fffd'/>
<id>9566cee0046b08191e7b15065e7bcd89d077fffd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Changes in QStateMachine (rootState)</title>
<updated>2009-07-23T03:25:16+00:00</updated>
<author>
<name>No'am Rosenthal</name>
<email>noam.rosenthal@nokia.com</email>
</author>
<published>2009-07-23T03:25:16+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/{non-gerrit}/qt-labs/scxml.git/commit/?id=7092b921c0c18f7ba202eb5a01934cc1a850c04a'/>
<id>7092b921c0c18f7ba202eb5a01934cc1a850c04a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Enabled using SCXML with an existing QScriptEngine</title>
<updated>2009-07-13T01:32:08+00:00</updated>
<author>
<name>No'am Rosenthal</name>
<email>noam.rosenthal@nokia.com</email>
</author>
<published>2009-07-13T01:32:08+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/{non-gerrit}/qt-labs/scxml.git/commit/?id=084833d82e280f505088a278250bfb395a3a67ef'/>
<id>084833d82e280f505088a278250bfb395a3a67ef</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Work with the new activated trigger from QAbstractTransition</title>
<updated>2009-06-18T04:51:17+00:00</updated>
<author>
<name>Noam Rosenthal</name>
<email>nrosenth@nokia.com</email>
</author>
<published>2009-06-18T04:51:17+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/{non-gerrit}/qt-labs/scxml.git/commit/?id=6a9f40cb8ef0eb692aec1024002027fa25414e4b'/>
<id>6a9f40cb8ef0eb692aec1024002027fa25414e4b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Bug fixes after testing with VUI</title>
<updated>2009-06-15T13:04:01+00:00</updated>
<author>
<name>Noam Rosenthal</name>
<email>nrosenth@nokia.com</email>
</author>
<published>2009-06-15T13:04:01+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/{non-gerrit}/qt-labs/scxml.git/commit/?id=65e5705f1955b2a780668d9766abc64973d6ee12'/>
<id>65e5705f1955b2a780668d9766abc64973d6ee12</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
